package com.forum.module.blog.controller.article.vo;

import com.forum.module.system.api.user.dto.AdminUserRespDTO;
import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 功能:
 * 作者:ouyzh
 * 日期:2025/3/2 20:59
 */
@Schema(description = "博客管理 - 文章信息 Response VO")
public class ArticleRespVO {
    @Schema(description = "编号", example = "1")
    private Long id;

    /**
     * 用户编号
     */
    @Schema(description = "用户编号", example = "!")
    private Long userId;

    /**
     * 文件标题
     */
    @Schema(description = "文件标题", example = "这个一篇文章")
    private String title;

    /**
     * 文章摘要
     */
    @Schema(description = "文章摘要", example = "这个一篇文章")
    private String summary;

    /**
     * 文章内容
     */
    @Schema(description = "文章内容", example = "这个一篇文章")
    private String content;

    /**
     * 文章封面图URL
     */
    @Schema(description = "文章封面图URL", example = "http://1.1.1.1:80/rtwtq.jpg")
    private String coverImage;

    /**
     * 文章分类编号
     */
    @Schema(description = "文章分类编号", example = "1")
    private Long categoryId;

    @Schema(description = "文章分类名称", example = "1")
    private String categoryName;

    /**
     * 文章状态（0：草稿 1：发布 2：审核中）
     */
    @Schema(description = "文章状态（0：草稿 1：发布 2：审核中）", example = "1")
    private Integer status;

    /**
     * 浏览量
     */
    @Schema(description = "浏览量", example = "1")
    private Long views;

    /**
     * 点赞数
     */
    @Schema(description = "点赞数", example = "1")
    private Long likes;

    /**
     * 评论数
     */
    @Schema(description = "评论数", example = "1")
    private Long comments;

    @Schema(description = "创建时间", example = "2024-01-02 12:00:00")
    private LocalDateTime createTime;

    @Schema(description = "更新时间", example = "2024-01-02 12:00:00")
    private LocalDateTime updateTime;

    @Schema(description = "创建人", example = "1")
    private Long creator;

    @Schema(description = "更新人", example = "1")
    private Long updater;

    @Schema(description = "所属标签")
    private String tagName;

    @Schema(description = "用户信息")
    private AdminUserRespDTO userInfo;

    @Schema(description = "收藏数")
    private Long favorites;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getSummary() {
        return summary;
    }

    public void setSummary(String summary) {
        this.summary = summary;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getCoverImage() {
        return coverImage;
    }

    public void setCoverImage(String coverImage) {
        this.coverImage = coverImage;
    }

    public Long getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getViews() {
        return views;
    }

    public void setViews(Long views) {
        this.views = views;
    }

    public Long getLikes() {
        return likes;
    }

    public void setLikes(Long likes) {
        this.likes = likes;
    }

    public Long getComments() {
        return comments;
    }

    public void setComments(Long comments) {
        this.comments = comments;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public Long getCreator() {
        return creator;
    }

    public void setCreator(Long creator) {
        this.creator = creator;
    }

    public Long getUpdater() {
        return updater;
    }

    public void setUpdater(Long updater) {
        this.updater = updater;
    }

    public AdminUserRespDTO getUserInfo() {
        return userInfo;
    }

    public void setUserInfo(AdminUserRespDTO userInfo) {
        this.userInfo = userInfo;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public String getTagName() {
        return tagName;
    }

    public void setTagName(String tagName) {
        this.tagName = tagName;
    }

    public Long getFavorites() {
        return favorites;
    }

    public void setFavorites(Long favorites) {
        this.favorites = favorites;
    }
}
